describe('前端实装面长度校验测试', () => {
  let testData

  before(() => {
    cy.fixture('test-data').then((data) => {
      testData = data
    })
  })

  beforeEach(() => {
    cy.visit('http://localhost:8002/#/pages/select/select')
    cy.wait(3000)
  })

  describe('🎯 前端smtSide长度校验', () => {
    it('应该限制实装面输入为1个字符', () => {
      // 测试输入多字符是否被正确限制
      cy.get('body').then(($body) => {
        // 查找实装面输入框
        const surfaceInputSelectors = [
          'input[placeholder*="实装面"]',
          'input[maxlength="1"]',
          '.input:eq(2)', // 第三个输入框通常是实装面
          'input:eq(2)'
        ]

        let inputFound = false
        for (const selector of surfaceInputSelectors) {
          if ($body.find(selector).length > 0) {
            const $input = cy.get(selector).first()
            
            // 测试输入多字符
            $input.clear().type('TOP')
            
            // 验证只保留了第一个字符
            $input.should('have.value', 'T')
            
            cy.log('✅ 实装面输入限制为1字符 - 验证通过')
            cy.log('📝 输入"TOP"后实际值为"T"')
            
            inputFound = true
            break
          }
        }
        
        if (!inputFound) {
          cy.log('⚠️ 未找到实装面输入框，跳过前端校验测试')
        }
      })
    })

    it('应该显示长度超限提示信息', () => {
      cy.get('body').then(($body) => {
        if ($body.find('input[maxlength="1"]').length > 0) {
          // 尝试输入多字符并检查是否有提示
          cy.get('input[maxlength="1"]').first().clear().type('BOTTOM')
          
          // 等待可能的Toast提示
          cy.wait(1000)
          
          // 检查输入框值是否被正确限制
          cy.get('input[maxlength="1"]').first().should('have.value', 'B')
          
          cy.log('✅ 长度校验工作正常：BOTTOM → B')
        }
      })
    })

    it('应该接受有效的1字符实装面值', () => {
      const validValues = ['1', '2', 'A', 'B', 'T', 'L']
      
      validValues.forEach((value) => {
        cy.get('body').then(($body) => {
          if ($body.find('input[maxlength="1"]').length > 0) {
            cy.get('input[maxlength="1"]').first().clear().type(value)
            cy.get('input[maxlength="1"]').first().should('have.value', value)
            cy.log(`✅ 接受有效值: "${value}"`)
          }
        })
      })
    })
  })
})